#include <stdio.h>

typedef unsigned long long tang_t;

tang_t recurse_factorial(int);

/**
 * 题目：利用递归方法求 5!。
*/
int main(int argc, char const *argv[])
{
    int n;
    printf("请输入阶乘的基数：");
    scanf("%d", &n);

    tang_t result = recurse_factorial(n);
    printf("%d!的阶乘是：%llu\n", n, result);

    return 0;
}

tang_t recurse_factorial(int n)
{
    if (n == 1)
    {
        return 1;
    }
    
    return recurse_factorial(n-1) * n;
}